home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1996-06-01 | 4.5 KB | [ftFC/NLft] |
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: Projection 3D
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Sat Jun 1 12:31:54 1996, modified Sat Jun 1 12:31:54 1996, creator 'NLft', type 'ftFC', 3573 bytes "Projection 3D" , at 0xe75 815 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
100%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [ftFC] |
macFileCreator | [NLft] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0d 50 72 6f 6a 65 63 | 74 69 6f 6e 20 33 44 00 |..Projec|tion 3D.|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 66 74 46 43 4e 4c 66 | 74 01 00 00 00 00 00 00 |.ftFCNLf|t.......|
|00000050| 00 00 00 00 00 0d f5 00 | 00 03 2f ad d6 20 fa ad |........|../.. ..|
|00000060| d6 20 fa 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |. ......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 41 26 00 00 |........|....A&..|
|00000080| 7b 0d 20 20 74 68 69 73 | 20 70 72 6f 67 72 61 6d |{. this| program|
|00000090| 20 74 61 6b 65 73 20 61 | 20 74 68 72 65 65 20 64 | takes a| three d|
|000000a0| 69 6d 65 6e 73 69 6f 6e | 61 6c 20 64 61 74 61 20 |imension|al data |
|000000b0| 73 65 74 2c 20 64 65 66 | 69 6e 65 64 20 62 79 20 |set, def|ined by |
|000000c0| 69 74 73 20 78 2d 2c 20 | 79 2d 2c 20 61 6e 64 20 |its x-, |y-, and |
|000000d0| 7a 2d 20 63 6f 6f 72 64 | 69 6e 61 74 65 73 2c 20 |z- coord|inates, |
|000000e0| 61 6e 64 20 70 72 6f 6a | 65 63 74 73 0d 20 20 69 |and proj|ects. i|
|000000f0| 74 73 20 70 6f 69 6e 74 | 73 20 6f 6e 74 6f 20 74 |ts point|s onto t|
|00000100| 68 65 20 70 6c 61 6e 65 | 20 70 65 72 70 65 6e 64 |he plane| perpend|
|00000110| 69 63 75 6c 61 72 20 74 | 6f 20 61 20 76 65 63 74 |icular t|o a vect|
|00000120| 6f 72 20 65 20 20 69 6e | 20 73 75 63 68 20 61 20 |or e in| such a |
|00000130| 77 61 79 20 74 68 61 74 | 20 74 68 65 20 70 6f 73 |way that| the pos|
|00000140| 69 74 69 6f 6e 20 76 65 | 63 74 6f 72 20 6f 66 20 |ition ve|ctor of |
|00000150| 0d 20 20 74 68 65 20 66 | 69 72 73 74 20 70 6f 69 |. the f|irst poi|
|00000160| 6e 74 20 28 69 2e 65 2e | 20 74 68 65 20 6f 6e 65 |nt (i.e.| the one|
|00000170| 20 69 6e 20 74 68 65 20 | 66 69 72 73 74 20 6e 6f | in the |first no|
|00000180| 6e 20 65 6d 70 74 79 20 | 72 6f 77 20 6f 66 20 74 |n empty |row of t|
|00000190| 68 65 20 78 2d 79 2d 7a | 20 63 6f 6c 75 6d 6e 73 |he x-y-z| columns|
|000001a0| 29 20 74 68 61 74 20 69 | 73 20 72 65 61 64 20 69 |) that i|s read i|
|000001b0| 6e 20 69 73 20 0d 20 20 | 6d 61 64 65 20 76 65 72 |n is . |made ver|
|000001c0| 74 69 63 61 6c 2e 20 0d | 20 20 54 68 65 20 74 77 |tical. .| The tw|
|000001d0| 6f 20 64 69 6d 65 6e 73 | 69 6f 6e 61 6c 20 70 69 |o dimens|ional pi|
|000001e0| 63 74 75 72 65 20 6f 62 | 74 61 69 6e 65 64 20 62 |cture ob|tained b|
|000001f0| 79 20 74 68 65 20 70 72 | 6f 6a 65 63 74 69 6f 6e |y the pr|ojection|
|00000200| 20 69 73 20 74 68 65 6e | 20 72 6f 74 61 74 65 64 | is then| rotated|
|00000210| 20 62 79 20 61 6e 20 61 | 6e 67 6c 65 20 70 68 69 | by an a|ngle phi|
|00000220| 2e 0d 20 20 0d 20 20 54 | 68 65 20 72 65 73 75 6c |.. . T|he resul|
|00000230| 74 69 6e 67 20 64 61 74 | 61 20 73 65 74 20 69 73 |ting dat|a set is|
|00000240| 20 73 74 6f 72 65 64 20 | 69 6e 20 74 77 6f 20 64 | stored |in two d|
|00000250| 61 74 61 20 63 6f 6c 75 | 6d 6e 73 2e 0d 20 20 0d |ata colu|mns.. .|
|00000260| 20 20 54 6f 20 6d 61 6b | 65 20 74 68 69 6e 67 73 | To mak|e things|
|00000270| 20 66 61 73 74 65 72 2c | 20 74 68 65 20 70 72 6f | faster,| the pro|
|00000280| 67 72 61 6d 20 61 73 73 | 75 6d 65 73 20 74 68 61 |gram ass|umes tha|
|00000290| 74 20 69 66 20 74 68 65 | 20 78 43 6f 6c 20 63 6f |t if the| xCol co|
|000002a0| 6e 74 61 69 6e 73 20 61 | 20 76 61 6c 69 64 0d 20 |ntains a| valid. |
|000002b0| 20 6e 75 6d 62 65 72 2c | 20 61 6c 73 6f 20 79 43 | number,| also yC|
|000002c0| 6f 6c 20 61 6e 64 20 7a | 43 6f 6c 20 64 6f 2e 0d |ol and z|Col do..|
|000002d0| 20 20 0d 20 20 54 6f 20 | 75 73 65 20 74 68 69 73 | . To |use this|
|000002e0| 20 70 72 6f 67 72 61 6d | 2c 20 63 68 6f 6f 73 65 | program|, choose|
|000002f0| 20 22 41 64 64 20 54 6f | 20 4d 65 6e 75 22 20 66 | "Add To| Menu" f|
|00000300| 72 6f 6d 20 74 68 65 20 | 4d 69 73 63 20 6d 65 6e |rom the |Misc men|
|00000310| 75 20 28 6f 72 20 63 6c | 69 63 6b 20 74 68 65 20 |u (or cl|ick the |
|00000320| 41 64 64 20 62 75 74 74 | 6f 6e 29 2e 0d 20 20 54 |Add butt|on).. T|
|00000330| 68 65 6e 20 63 68 6f 6f | 73 65 20 74 68 65 20 70 |hen choo|se the p|
|00000340| 72 6f 67 72 61 6d 27 73 | 20 6e 61 6d 65 20 66 72 |rogram's| name fr|
|00000350| 6f 6d 20 74 68 65 20 4d | 69 73 63 20 6d 65 6e 75 |om the M|isc menu|
|00000360| 2e 0d 0d 7d 0d 0d 70 72 | 6f 67 72 61 6d 20 50 72 |...}..pr|ogram Pr|
|00000370| 6f 6a 65 63 74 69 6f 6e | 33 44 3b 0d 0d 76 61 72 |ojection|3D;..var|
|00000380| 20 65 31 2c 65 32 2c 65 | 33 2c 70 68 69 2c 78 43 | e1,e2,e|3,phi,xC|
|00000390| 6f 6c 2c 79 43 6f 6c 2c | 7a 43 6f 6c 3a 65 78 74 |ol,yCol,|zCol:ext|
|000003a0| 65 6e 64 65 64 3b 0d 09 | 09 09 61 31 2c 61 32 2c |ended;..|..a1,a2,|
|000003b0| 61 33 2c 62 31 2c 62 32 | 2c 62 33 2c 63 31 2c 63 |a3,b1,b2|,b3,c1,c|
|000003c0| 32 2c 63 33 3a 65 78 74 | 65 6e 64 65 64 3b 0d 09 |2,c3:ext|ended;..|
|000003d0| 09 09 78 78 2c 79 79 2c | 78 78 43 2c 79 79 43 2c |..xx,yy,|xxC,yyC,|
|000003e0| 4c 2c 70 68 69 30 2c 20 | 43 6f 73 50 68 69 2c 20 |L,phi0, |CosPhi, |
|000003f0| 53 69 6e 50 68 69 3a 65 | 78 74 65 6e 64 65 64 3b |SinPhi:e|xtended;|
|00000400| 0d 09 09 09 69 3a 69 6e | 74 65 67 65 72 3b 0d 0d |....i:in|teger;..|
|00000410| 70 72 6f 63 65 64 75 72 | 65 20 69 6e 69 74 69 61 |procedur|e initia|
|00000420| 6c 69 7a 65 3b 0d 62 65 | 67 69 6e 0d 20 20 65 31 |lize;.be|gin. e1|
|00000430| 3a 3d 31 3b 65 32 3a 3d | 31 3b 65 33 3a 3d 33 3b |:=1;e2:=|1;e3:=3;|
|00000440| 70 68 69 3a 3d 30 3b 0d | 20 20 78 43 6f 6c 3a 3d |phi:=0;.| xCol:=|
|00000450| 31 3b 79 43 6f 6c 3a 3d | 32 3b 7a 43 6f 6c 3a 3d |1;yCol:=|2;zCol:=|
|00000460| 33 3b 78 78 43 3a 3d 34 | 3b 79 79 43 3a 3d 35 3b |3;xxC:=4|;yyC:=5;|
|00000470| 0d 65 6e 64 3b 0d 0d 66 | 75 6e 63 74 69 6f 6e 20 |.end;..f|unction |
|00000480| 73 70 28 78 31 2c 78 32 | 2c 78 33 2c 79 31 2c 79 |sp(x1,x2|,x3,y1,y|
|00000490| 32 2c 79 33 3a 65 78 74 | 65 6e 64 65 64 29 3a 65 |2,y3:ext|ended):e|
|000004a0| 78 74 65 6e 64 65 64 3b | 09 7b 73 63 61 6c 61 72 |xtended;|.{scalar|
|000004b0| 20 70 72 6f 64 75 63 74 | 20 6f 66 20 74 77 6f 20 | product| of two |
|000004c0| 76 65 63 74 6f 72 73 7d | 0d 62 65 67 69 6e 0d 73 |vectors}|.begin.s|
|000004d0| 70 3a 3d 78 31 2a 79 31 | 2b 78 32 2a 79 32 2b 78 |p:=x1*y1|+x2*y2+x|
|000004e0| 33 2a 79 33 0d 65 6e 64 | 3b 0d 0d 62 65 67 69 6e |3*y3.end|;..begin|
|000004f0| 0d 7b 72 65 73 65 74 20 | 70 68 69 2e 20 53 65 65 |.{reset |phi. See|
|00000500| 20 62 65 6c 6f 77 7d 0d | 70 68 69 3a 3d 28 70 68 | below}.|phi:=(ph|
|00000510| 69 2d 70 68 69 30 29 2a | 31 38 30 2f 70 69 3b 0d |i-phi0)*|180/pi;.|
|00000520| 7b 66 69 72 73 74 2c 20 | 61 73 6b 20 66 6f 72 20 |{first, |ask for |
|00000530| 69 6e 70 75 74 20 61 6e | 64 20 6f 75 74 70 75 74 |input an|d output|
|00000540| 20 63 6f 6c 75 6d 6e 73 | 7d 0d 53 65 74 42 6f 78 | columns|}.SetBox|
|00000550| 54 69 74 6c 65 28 27 49 | 6e 70 75 74 20 61 6e 64 |Title('I|nput and|
|00000560| 20 6f 75 74 70 75 74 20 | 63 6f 6c 75 6d 6e 73 27 | output |columns'|
|00000570| 29 3b 0d 66 6f 72 20 69 | 3a 3d 31 20 74 6f 20 4e |);.for i|:=1 to N|
|00000580| 72 43 6f 6c 73 20 64 6f | 20 0d 62 65 67 69 6e 0d |rCols do| .begin.|
|00000590| 09 69 66 20 43 6f 6c 45 | 6d 70 74 79 28 69 29 20 |.if ColE|mpty(i) |
|000005a0| 74 68 65 6e 20 6c 65 61 | 76 65 0d 65 6e 64 3b 0d |then lea|ve.end;.|
|000005b0| 78 78 43 3a 3d 69 3b 0d | 66 6f 72 20 69 3a 3d 78 |xxC:=i;.|for i:=x|
|000005c0| 78 43 2b 31 20 74 6f 20 | 4e 72 43 6f 6c 73 20 64 |xC+1 to |NrCols d|
|000005d0| 6f 20 0d 62 65 67 69 6e | 0d 09 69 66 20 43 6f 6c |o .begin|..if Col|
|000005e0| 45 6d 70 74 79 28 69 29 | 20 74 68 65 6e 20 6c 65 |Empty(i)| then le|
|000005f0| 61 76 65 0d 65 6e 64 3b | 0d 79 79 43 3a 3d 69 3b |ave.end;|.yyC:=i;|
|00000600| 0d 49 6e 70 75 74 28 27 | 24 43 78 20 43 6f 6c 75 |.Input('|$Cx Colu|
|00000610| 6d 6e 27 2c 78 43 6f 6c | 2c 27 24 43 79 20 43 6f |mn',xCol|,'$Cy Co|
|00000620| 6c 75 6d 27 2c 79 43 6f | 6c 2c 27 24 43 7a 20 43 |lum',yCo|l,'$Cz C|
|00000630| 6f 6c 75 6d 27 2c 7a 43 | 6f 6c 2c 27 24 43 6f 75 |olum',zC|ol,'$Cou|
|00000640| 74 70 75 74 20 78 20 43 | 6f 6c 27 2c 78 78 43 2c |tput x C|ol',xxC,|
|00000650| 27 24 43 6f 75 74 70 75 | 74 20 79 2d 63 6f 6c 27 |'$Coutpu|t y-col'|
|00000660| 2c 79 79 43 29 3b 0d 0d | 7b 74 68 65 6e 2c 20 61 |,yyC);..|{then, a|
|00000670| 73 6b 20 74 68 65 20 76 | 69 65 77 69 6e 67 20 64 |sk the v|iewing d|
|00000680| 69 72 65 63 74 69 6f 6e | 20 28 65 29 20 61 6e 64 |irection| (e) and|
|00000690| 20 74 68 65 20 72 6f 74 | 61 74 69 6f 6e 20 61 6e | the rot|ation an|
|000006a0| 67 6c 65 20 6f 66 20 74 | 68 65 20 66 69 6e 61 6c |gle of t|he final|
|000006b0| 20 32 2d 44 20 6f 75 74 | 70 75 74 7d 0d 53 65 74 | 2-D out|put}.Set|
|000006c0| 42 6f 78 54 69 74 6c 65 | 28 27 70 72 6f 6a 65 63 |BoxTitle|('projec|
|000006d0| 74 69 6f 6e 20 64 69 72 | 65 63 74 69 6f 6e 20 61 |tion dir|ection a|
|000006e0| 6e 64 20 72 6f 74 61 74 | 69 6f 6e 20 61 6e 67 6c |nd rotat|ion angl|
|000006f0| 65 27 29 3b 0d 49 6e 70 | 75 74 28 27 65 31 3d 27 |e');.Inp|ut('e1='|
|00000700| 2c 65 31 2c 27 65 32 3d | 27 2c 65 32 2c 27 65 33 |,e1,'e2=|',e2,'e3|
|00000710| 3d 27 2c 65 33 2c 27 72 | 6f 74 61 74 69 6f 6e 20 |=',e3,'r|otation |
|00000720| 61 6e 67 6c 65 27 2c 70 | 68 69 29 3b 0d 0d 7b 6e |angle',p|hi);..{n|
|00000730| 6f 72 6d 61 6c 69 73 65 | 20 74 68 65 20 76 65 63 |ormalise| the vec|
|00000740| 74 6f 72 20 65 7d 0d 09 | 09 4c 3a 3d 73 71 72 74 |tor e}..|.L:=sqrt|
|00000750| 28 73 71 72 28 65 31 29 | 2b 73 71 72 28 65 32 29 |(sqr(e1)|+sqr(e2)|
|00000760| 2b 73 71 72 28 65 33 29 | 29 3b 0d 09 09 65 31 3a |+sqr(e3)|);...e1:|
|00000770| 3d 65 31 2f 4c 3b 0d 09 | 09 65 32 3a 3d 65 32 2f |=e1/L;..|.e2:=e2/|
|00000780| 4c 3b 0d 09 09 65 33 3a | 3d 65 33 2f 4c 3b 0d 0d |L;...e3:|=e3/L;..|
|00000790| 7b 66 69 6e 64 20 61 20 | 75 6e 69 74 20 76 65 63 |{find a |unit vec|
|000007a0| 74 6f 72 20 61 20 70 65 | 72 70 65 6e 64 69 63 75 |tor a pe|rpendicu|
|000007b0| 6c 61 72 20 74 6f 20 65 | 7d 0d 69 66 20 65 32 3d |lar to e|}.if e2=|
|000007c0| 30 20 74 68 65 6e 20 62 | 65 67 69 6e 20 61 31 3a |0 then b|egin a1:|
|000007d0| 3d 30 3b 61 32 3a 3d 31 | 3b 61 33 3a 3d 30 20 65 |=0;a2:=1|;a3:=0 e|
|000007e0| 6e 64 20 65 6c 73 65 0d | 09 62 65 67 69 6e 0d 09 |nd else.|.begin..|
|000007f0| 09 09 61 31 3a 3d 31 3b | 61 32 3a 3d 2d 65 31 2f |..a1:=1;|a2:=-e1/|
|00000800| 65 32 3b 61 33 3a 3d 30 | 3b 0d 09 09 09 61 31 3a |e2;a3:=0|;....a1:|
|00000810| 3d 61 31 2f 73 71 72 74 | 28 31 2b 73 71 72 28 61 |=a1/sqrt|(1+sqr(a|
|00000820| 32 29 29 3b 0d 09 09 09 | 61 32 3a 3d 61 32 2f 73 |2));....|a2:=a2/s|
|00000830| 71 72 74 28 31 2b 73 71 | 72 28 61 32 29 29 3b 0d |qrt(1+sq|r(a2));.|
|00000840| 65 6e 64 3b 0d 0d 7b 63 | 61 6c 63 75 6c 61 74 65 |end;..{c|alculate|
|00000850| 20 74 68 65 20 75 6e 69 | 74 20 76 65 63 74 6f 72 | the uni|t vector|
|00000860| 20 70 65 72 70 65 6e 64 | 69 63 75 6c 61 72 20 74 | perpend|icular t|
|00000870| 6f 20 62 6f 74 68 20 65 | 20 61 6e 64 20 61 3a 20 |o both e| and a: |
|00000880| 63 72 6f 73 73 20 70 72 | 6f 64 75 63 74 21 7d 0d |cross pr|oduct!}.|
|00000890| 62 31 3a 3d 65 32 2a 61 | 33 2d 65 33 2a 61 32 3b |b1:=e2*a|3-e3*a2;|
|000008a0| 0d 62 32 3a 3d 65 33 2a | 61 31 2d 65 31 2a 61 33 |.b2:=e3*|a1-e1*a3|
|000008b0| 3b 0d 62 33 3a 3d 65 31 | 2a 61 32 2d 65 32 2a 61 |;.b3:=e1|*a2-e2*a|
|000008c0| 31 3b 0d 0d 69 3a 3d 30 | 3b 0d 72 65 70 65 61 74 |1;..i:=0|;.repeat|
|000008d0| 20 69 3a 3d 69 2b 31 20 | 75 6e 74 69 6c 20 64 61 | i:=i+1 |until da|
|000008e0| 74 61 6f 6b 28 69 2c 78 | 43 6f 6c 29 3b 20 7b 66 |taok(i,x|Col); {f|
|000008f0| 69 6e 64 20 74 68 65 20 | 66 69 72 73 74 20 64 61 |ind the |first da|
|00000900| 74 61 20 72 6f 77 7d 0d | 0d 7b 66 69 6e 64 20 74 |ta row}.|.{find t|
|00000910| 68 65 20 6c 65 6e 67 74 | 68 20 4c 20 6f 66 20 74 |he lengt|h L of t|
|00000920| 68 65 20 70 72 6f 6a 65 | 63 74 69 6f 6e 20 6f 66 |he proje|ction of|
|00000930| 20 74 68 65 20 70 6f 73 | 69 74 69 6f 6e 20 76 65 | the pos|ition ve|
|00000940| 63 74 6f 72 20 6f 6e 20 | 65 7d 0d 09 4c 3a 3d 73 |ctor on |e}..L:=s|
|00000950| 70 28 64 61 74 61 5b 69 | 2c 78 43 6f 6c 5d 2c 64 |p(data[i|,xCol],d|
|00000960| 61 74 61 5b 69 2c 79 43 | 6f 6c 5d 2c 64 61 74 61 |ata[i,yC|ol],data|
|00000970| 5b 69 2c 7a 43 6f 6c 5d | 2c 65 31 2c 65 32 2c 65 |[i,zCol]|,e1,e2,e|
|00000980| 33 29 3b 0d 09 0d 7b 66 | 69 6e 64 20 63 2c 20 74 |3);...{f|ind c, t|
|00000990| 68 65 20 63 6f 6d 70 6f | 6e 65 6e 74 20 6f 66 20 |he compo|nent of |
|000009a0| 74 68 65 20 70 6f 73 69 | 74 69 6f 6e 20 76 65 63 |the posi|tion vec|
|000009b0| 74 6f 72 20 70 65 72 70 | 65 6e 64 69 63 75 6c 61 |tor perp|endicula|
|000009c0| 72 20 74 6f 20 65 7d 0d | 09 63 31 3a 3d 64 61 74 |r to e}.|.c1:=dat|
|000009d0| 61 5b 69 2c 78 43 6f 6c | 5d 2d 4c 2a 65 31 3b 63 |a[i,xCol|]-L*e1;c|
|000009e0| 32 3a 3d 64 61 74 61 5b | 69 2c 79 43 6f 6c 5d 2d |2:=data[|i,yCol]-|
|000009f0| 4c 2a 65 32 3b 63 33 3a | 3d 64 61 74 61 5b 69 2c |L*e2;c3:|=data[i,|
|00000a00| 7a 43 6f 6c 5d 2d 4c 2a | 65 33 3b 0d 09 0d 7b 66 |zCol]-L*|e3;...{f|
|00000a10| 69 6e 64 20 74 68 65 20 | 6c 65 6e 67 68 74 73 20 |ind the |lenghts |
|00000a20| 78 78 20 61 6e 64 20 79 | 79 20 6f 66 20 74 68 65 |xx and y|y of the|
|00000a30| 20 63 6f 6d 70 6f 6e 65 | 6e 74 73 20 6f 66 20 63 | compone|nts of c|
|00000a40| 20 61 6c 6f 6e 67 20 74 | 68 65 20 75 6e 69 74 20 | along t|he unit |
|00000a50| 76 65 63 74 6f 72 73 20 | 61 20 61 6e 64 20 62 7d |vectors |a and b}|
|00000a60| 0d 09 78 78 3a 3d 73 70 | 28 63 31 2c 20 63 32 2c |..xx:=sp|(c1, c2,|
|00000a70| 63 33 2c 61 31 2c 61 32 | 2c 61 33 29 3b 0d 09 79 |c3,a1,a2|,a3);..y|
|00000a80| 79 3a 3d 73 70 28 63 31 | 2c 20 63 32 2c 63 33 2c |y:=sp(c1|, c2,c3,|
|00000a90| 62 31 2c 62 32 2c 62 33 | 29 3b 0d 09 0d 7b 74 68 |b1,b2,b3|);...{th|
|00000aa0| 65 20 66 69 72 73 74 20 | 70 6f 73 69 74 69 6f 6e |e first |position|
|00000ab0| 20 76 65 63 74 6f 72 20 | 72 65 61 64 20 69 6e 20 | vector |read in |
|00000ac0| 69 73 20 6d 61 64 65 20 | 76 65 72 74 69 63 61 6c |is made |vertical|
|00000ad0| 20 62 79 20 64 65 66 61 | 75 6c 74 2c 20 64 6f 20 | by defa|ult, do |
|00000ae0| 6e 6f 74 20 64 6f 20 69 | 74 20 69 66 20 74 68 65 |not do i|t if the|
|00000af0| 20 70 72 6f 6a 65 63 74 | 69 6f 6e 20 6f 66 20 74 | project|ion of t|
|00000b00| 68 65 20 70 6f 73 69 74 | 69 6f 6e 20 76 65 63 74 |he posit|ion vect|
|00000b10| 6f 72 20 67 69 76 65 73 | 20 7a 65 72 6f 7d 0d 09 |or gives| zero}..|
|00000b20| 69 66 20 28 78 78 3d 30 | 29 20 61 6e 64 20 28 79 |if (xx=0|) and (y|
|00000b30| 79 3d 30 29 20 74 68 65 | 6e 20 70 68 69 30 3a 3d |y=0) the|n phi0:=|
|00000b40| 30 20 65 6c 73 65 20 70 | 68 69 30 3a 3d 70 69 2f |0 else p|hi0:=pi/|
|00000b50| 32 2d 61 72 63 74 61 6e | 28 79 79 2f 78 78 29 3b |2-arctan|(yy/xx);|
|00000b60| 0d 09 7b 72 6f 74 61 74 | 69 6e 67 20 74 68 20 6f |..{rotat|ing th o|
|00000b70| 75 74 70 75 74 20 62 79 | 20 70 68 69 30 20 70 72 |utput by| phi0 pr|
|00000b80| 6f 64 75 63 65 73 20 76 | 65 72 74 69 63 61 6c 69 |oduces v|erticali|
|00000b90| 74 79 20 6f 66 20 74 68 | 65 20 66 69 72 73 74 20 |ty of th|e first |
|00000ba0| 70 6f 73 69 74 69 6f 6e | 20 76 65 63 74 6f 72 20 |position| vector |
|00000bb0| 77 68 69 63 68 20 69 73 | 20 72 65 61 64 20 69 6e |which is| read in|
|00000bc0| 7d 0d 09 7b 61 64 64 20 | 74 68 65 20 75 73 65 72 |}..{add |the user|
|00000bd0| 20 64 65 66 69 6e 65 64 | 20 61 6e 67 6c 65 20 74 | defined| angle t|
|00000be0| 6f 20 74 68 69 73 20 61 | 6e 67 6c 65 7d 0d 09 70 |o this a|ngle}..p|
|00000bf0| 68 69 3a 3d 70 69 2a 70 | 68 69 2f 31 38 30 2b 70 |hi:=pi*p|hi/180+p|
|00000c00| 68 69 30 3b 0d 09 0d 09 | 7b 63 61 6c 63 75 6c 61 |hi0;....|{calcula|
|00000c10| 74 65 20 74 68 65 20 65 | 6c 65 6d 65 6e 74 73 20 |te the e|lements |
|00000c20| 6f 66 20 74 68 65 20 72 | 6f 74 61 74 69 6f 6e 20 |of the r|otation |
|00000c30| 6d 61 74 72 69 78 7d 0d | 09 43 6f 73 50 68 69 3a |matrix}.|.CosPhi:|
|00000c40| 3d 63 6f 73 28 70 68 69 | 29 3b 53 69 6e 50 68 69 |=cos(phi|);SinPhi|
|00000c50| 3a 3d 53 69 6e 28 70 68 | 69 29 3b 0d 09 0d 7b 73 |:=Sin(ph|i);...{s|
|00000c60| 74 6f 72 65 20 74 68 65 | 20 72 6f 74 61 74 65 64 |tore the| rotated|
|00000c70| 20 6f 75 74 70 75 74 20 | 69 6e 20 74 68 65 20 74 | output |in the t|
|00000c80| 77 6f 20 6f 75 74 70 75 | 74 20 63 6f 6c 75 6d 6e |wo outpu|t column|
|00000c90| 73 7d 0d 09 64 61 74 61 | 5b 69 2c 78 78 43 5d 3a |s}..data|[i,xxC]:|
|00000ca0| 3d 78 78 2a 43 6f 73 50 | 68 69 2d 79 79 2a 53 69 |=xx*CosP|hi-yy*Si|
|00000cb0| 6e 50 68 69 3b 0d 09 64 | 61 74 61 5b 69 2c 79 79 |nPhi;..d|ata[i,yy|
|00000cc0| 43 5d 3a 3d 78 78 2a 53 | 69 6e 50 68 69 2b 79 79 |C]:=xx*S|inPhi+yy|
|00000cd0| 2a 43 6f 73 50 68 69 3b | 0d 09 0d 09 69 3a 3d 69 |*CosPhi;|....i:=i|
|00000ce0| 2b 31 3b 7b 67 6f 20 74 | 6f 20 74 68 65 20 6e 65 |+1;{go t|o the ne|
|00000cf0| 78 74 20 72 6f 77 20 7d | 0d 0d 77 68 69 6c 65 20 |xt row }|..while |
|00000d00| 28 69 3c 3d 4e 72 52 6f | 77 73 29 20 20 64 6f 09 |(i<=NrRo|ws) do.|
|00000d10| 7b 63 61 6c 63 75 6c 61 | 74 65 20 74 68 65 20 70 |{calcula|te the p|
|00000d20| 72 6f 6a 65 63 74 69 6f | 6e 20 66 6f 72 20 65 61 |rojectio|n for ea|
|00000d30| 63 68 20 64 61 74 61 20 | 72 61 77 7d 0d 62 65 67 |ch data |raw}.beg|
|00000d40| 69 6e 0d 69 66 20 20 64 | 61 74 61 6f 6b 28 69 2c |in.if d|ataok(i,|
|00000d50| 78 43 6f 6c 29 20 74 68 | 65 6e 0d 62 65 67 69 6e |xCol) th|en.begin|
|00000d60| 0d 09 4c 3a 3d 73 70 28 | 64 61 74 61 5b 69 2c 78 |..L:=sp(|data[i,x|
|00000d70| 43 6f 6c 5d 2c 64 61 74 | 61 5b 69 2c 79 43 6f 6c |Col],dat|a[i,yCol|
|00000d80| 5d 2c 64 61 74 61 5b 69 | 2c 7a 43 6f 6c 5d 2c 65 |],data[i|,zCol],e|
|00000d90| 31 2c 65 32 2c 65 33 29 | 3b 0d 09 63 31 3a 3d 64 |1,e2,e3)|;..c1:=d|
|00000da0| 61 74 61 5b 69 2c 78 43 | 6f 6c 5d 2d 4c 2a 65 31 |ata[i,xC|ol]-L*e1|
|00000db0| 3b 63 32 3a 3d 64 61 74 | 61 5b 69 2c 79 43 6f 6c |;c2:=dat|a[i,yCol|
|00000dc0| 5d 2d 4c 2a 65 32 3b 63 | 33 3a 3d 64 61 74 61 5b |]-L*e2;c|3:=data[|
|00000dd0| 69 2c 7a 43 6f 6c 5d 2d | 4c 2a 65 33 3b 0d 09 78 |i,zCol]-|L*e3;..x|
|00000de0| 78 3a 3d 73 70 28 63 31 | 2c 20 63 32 2c 63 33 2c |x:=sp(c1|, c2,c3,|
|00000df0| 61 31 2c 61 32 2c 61 33 | 29 3b 0d 09 79 79 3a 3d |a1,a2,a3|);..yy:=|
|00000e00| 73 70 28 63 31 2c 20 63 | 32 2c 63 33 2c 62 31 2c |sp(c1, c|2,c3,b1,|
|00000e10| 62 32 2c 62 33 29 3b 0d | 09 64 61 74 61 5b 69 2c |b2,b3);.|.data[i,|
|00000e20| 78 78 43 5d 3a 3d 78 78 | 2a 43 6f 73 50 68 69 2d |xxC]:=xx|*CosPhi-|
|00000e30| 79 79 2a 53 69 6e 50 68 | 69 3b 0d 09 64 61 74 61 |yy*SinPh|i;..data|
|00000e40| 5b 69 2c 79 79 43 5d 3a | 3d 78 78 2a 53 69 6e 50 |[i,yyC]:|=xx*SinP|
|00000e50| 68 69 2b 79 79 2a 43 6f | 73 50 68 69 3b 0d 65 6e |hi+yy*Co|sPhi;.en|
|00000e60| 64 3b 0d 09 69 3a 3d 69 | 2b 31 3b 0d 65 6e 64 3b |d;..i:=i|+1;.end;|
|00000e70| 0d 65 6e 64 3b 00 00 00 | 00 00 00 00 00 00 00 00 |.end;...|........|
|00000e80| 00 00 01 00 00 00 02 b9 | 00 00 01 b9 00 00 00 76 |........|.......v|
|00000e90| 65 20 28 50 50 44 29 20 | 53 65 6c 65 63 74 65 64 |e (PPD) |Selected|
|00000ea0| 3a 00 00 00 00 00 85 01 | 6c 00 96 01 b5 80 00 00 |:.......|l.......|
|00000eb0| 0d 50 72 6f 6a 65 63 74 | 69 6f 6e 20 33 44 02 00 |.Project|ion 3D..|
|00000ec0| 00 00 66 74 46 43 4e 4c | 66 74 01 00 ff ff ff ff |..ftFCNL|ft......|
|00000ed0| 00 00 66 74 46 43 4e 4c | 66 74 01 00 ff ff ff ff |..ftFCNL|ft......|
|00000ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000ef0| 00 00 a7 29 8d 1a 00 00 | 0d f5 00 00 03 2f 66 00 |...)....|...../f.|
|00000f00| 3e 00 7a 00 aa 04 0c 50 | 72 69 6e 74 65 72 20 49 |>.z....P|rinter I|
|00000f10| 6e 66 6f 00 00 00 00 00 | 3e 01 6b 00 52 01 b6 04 |nfo.....|>.k.R...|
|00000f20| 04 48 65 6c 70 00 00 00 | 00 00 00 00 00 00 00 00 |.Help...|........|
|00000f30| 00 81 04 00 01 f0 11 00 | 00 00 15 00 35 00 23 01 |........|....5.#.|
|00000f40| 0e 01 ea 00 01 00 00 00 | 00 00 00 00 00 f0 12 00 |........|........|
|00000f50| 00 00 00 e2 00 08 00 00 | 00 00 00 bc 01 6a 00 d0 |........|.....j..|
|00000f60| 01 b8 04 02 4f 4b 00 00 | 00 00 00 0d 00 0d 00 2d |....OK..|.......-|
|00000f70| 00 2d a0 02 e0 00 00 00 | 00 00 00 bc 00 e9 00 d0 |.-......|........|
|00000f80| 00 00 00 08 00 29 00 06 | 01 dc 02 72 00 00 01 06 |.....)..|...r....|
|00000f90| 00 03 00 0a 00 00 06 47 | 65 6e 65 76 61 2a 40 82 |.......G|eneva*@.|
|00000fa0| c6 08 00 00 00 e6 b0 b6 | 00 d4 33 80 00 d4 33 7c |........|..3...3||
|00000fb0| 00 d4 e9 86 00 08 00 e6 | a9 24 40 82 c5 02 00 00 |........|.$@.....|
|00000fc0| 00 e6 b0 b6 00 d4 33 80 | 00 d4 33 7c 00 d4 e9 6c |......3.|..3|...l|
|00000fd0| 00 08 00 e6 a5 f0 00 e6 | a5 f8 00 e6 a6 00 00 d4 |........|........|
|00000fe0| e9 4e 00 00 00 00 00 d4 | e9 4e 00 e6 a9 80 40 82 |.N......|.N....@.|
|00000ff0| c1 d2 00 d4 e9 6c 00 08 | 00 e6 aa ac 40 82 c3 90 |.....l..|....@...|
|00001000| 00 e6 a9 64 00 00 00 00 | 00 00 00 00 00 48 00 ff |...d....|.....H..|
|00001010| 00 00 00 08 00 01 00 08 | 00 d7 6c 87 ff 00 00 81 |........|..l.....|
|00001020| 00 08 00 00 ff ff ff ff | 00 00 00 00 00 00 00 e6 |........|........|
|00001030| aa ac 40 82 c1 90 00 e6 | a9 92 40 82 00 00 00 00 |..@.....|..@.....|
|00001040| 00 d4 2e 8e 00 e6 aa b4 | 40 83 19 82 00 ab 01 f4 |........|@.......|
|00001050| 00 00 00 00 00 d4 33 7c | 00 c8 c3 6c 00 c8 c3 6c |......3||...l...l|
|00001060| 00 e6 a9 ac 00 e6 aa ac | 00 01 00 00 00 81 ff ff |........|........|
|00001070| 00 08 00 00 00 00 00 12 | 00 29 ff fd 00 0c ff 64 |........|.).....d|
|00001080| 72 00 00 00 ff 00 00 03 | 00 01 40 ff 00 00 00 00 |r.......|..@.....|
|00001090| 00 06 00 0b 80 00 00 00 | 00 10 00 00 00 00 00 00 |........|........|
|000010a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 04 00 00 |........|........|
|000010b0| 00 01 00 00 00 78 00 03 | 00 00 00 48 00 48 00 00 |.....x..|...H.H..|
|000010c0| 00 00 03 00 02 4c ff f4 | ff f4 03 0c 02 58 03 47 |.....L..|.....X.G|
|000010d0| 05 28 03 fc 00 02 00 00 | 00 48 00 48 00 00 00 00 |.(......|.H.H....|
|000010e0| 02 da 02 28 00 01 00 00 | 00 64 00 00 00 01 00 01 |...(....|.d......|
|000010f0| 01 01 00 00 00 01 27 0f | 00 01 00 01 00 00 00 00 |......'.|........|
|00001100| 00 00 00 00 00 00 00 00 | 68 08 00 19 01 90 00 00 |........|h.......|
|00001110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 01 00 00 |........|........|
|00001120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001130| 00 07 06 70 72 6f 46 69 | 74 00 00 01 00 00 00 02 |...proFi|t.......|
|00001140| b9 00 00 01 b9 00 00 00 | 76 00 d4 3a 0c 10 88 00 |........|v..:....|
|00001150| 00 00 1c 00 76 00 01 66 | 49 4e 46 00 04 00 12 53 |....v..f|INF....S|
|00001160| 54 52 20 00 00 00 4e 00 | 81 ff ff 00 00 00 00 00 |TR ...N.|........|
|00001170| d4 31 28 00 82 ff ff 00 | 00 00 0c 00 d4 31 04 00 |.1(.....|.....1..|
|00001180| 83 ff ff 00 00 01 16 00 | d4 39 f8 00 85 ff ff 00 |........|.9......|
|00001190| 00 01 2a 00 d4 30 90 00 | 84 ff ff 00 00 01 32 00 |..*..0..|......2.|
|000011a0| d4 31 6c bf f4 ff ff 00 | 00 01 ae 00 d4 2c c4 00 |.1l.....|.....,..|
|000011b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+